package main

import (
	"fmt"
	"os"
	"sync"
)

func main() {
	//a := 4
	//b := 3
	//fmt.Println(fun.AddSome(a, b))
	//i := 0
	//
	//var wg sync.WaitGroup
	//wg.Add(1) // 将有一个协程会运行
	//go Run(&wg)
	//wg.Wait() // 执行完协程才会继续向下走
	//for i < 10 {
	//	i++
	//	fmt.Println(i)
	//}
	file()
}

// 文件流
func file() {
	f, err := os.OpenFile("./test.txt", os.O_CREATE|os.O_RDWR, 0777)
	if err != nil {
		fmt.Println(err)
		return
	}
	for {
		b := make([]byte, 30)
		n, err := f.Read(b)
		if err != nil {
			return
		}
		fmt.Println(string(b), n)
	}

	//f.Close()
}

// Run 在方法之前加上 go 就是 goroutine ; 他会让方法异步执行 相当于协程
// Run 多线程
func Run(wg *sync.WaitGroup) {
	fmt.Println("go 携程 goroutine")
	wg.Done()
}

// Wg 协程管理器
func Wg() sync.WaitGroup {
	var wg sync.WaitGroup
	return wg
}
